Robotic device, method for controlling robotic device, and computer program

ABSTRACT

A robotic device includes a first calculation section adapted to calculate a first angular velocity of a first arm operating due to a first actuator provided with a first angle sensor based on rotational angle detection data of the first angle sensor of the first actuator, a second calculation section adapted to calculate a second angular velocity of the first arm taking an arm linkage device as an axis based on angular velocity detection data of an inertial sensor provided to the first arm linked via the arm linkage device including the first actuator, which is a calculation object of the first calculation section, and a third calculation section adapted to calculate a torsional angular velocity between the first actuator and the first arm with a low-frequency component eliminated.

CROSS REFERENCE TO RELATED APPLICATIONS

This is a continuation patent application of U.S. application Ser. No. 14/662,696 filed Mar. 19, 2015, which is a continuation patent application of U.S. application Ser. No. 13/198,066 filed Aug. 4, 2011, now U.S. Pat. No. 9,014,849 issued Apr. 21, 2015, which claims priority to Japanese Patent Application No. 2010-177066, filed Aug. 6, 2010, all of which are expressly incorporated by reference herein in their entireties.

BACKGROUND

1. Technical Field

The present invention relates to a robotic device, a method for controlling a robotic device, and a computer program.

2. Related Art

A robotic device having a multijoint structure is often used as a part of an IC handler or an assembling device and has been in heavy usage in a variety of industrial fields. Therefore, the speed and accuracy by which the robotic device can move an arm to a desired position has been a particularly important performance characteristic of such robotic devices.

In general, to move an arm quickly and accurately, it is preferable to reduce the inertial force acting on the arm and to prevent a load for a driving actuator from increasing. To reduce the inertial force acting on the arm, reducing the arm weight has been the most effective measure. However, the reduction of the arm weight results in a reduction in the rigidity of the arm. This causes a problem in that it becomes difficult to suppress vibrations of the arm when the arm stops. Even if a tip portion of the arm is stopped at a target position, a displacement corresponding to the amplitudes of the vibration of the arm itself is caused. Therefore, a subsequent action is not allowed to start until the vibration is sufficiently attenuated.

To cope with this problem, there have been proposed, for example: a method for disposing an acceleration sensor at a tip of an arm to operate the arm based on an acceleration signal, thus suppressing vibrations (e.g., JP A 1-173116); and a method for disposing an angular velocity sensor at a tip of an arm and the arm itself to thereby control the arm operation based on the angular velocity signal (e.g., JP A 2005-242794).

However, since the control signal for suppressing the vibrations is generated using either the angular velocity sensor or the acceleration sensor in the above methods for controlling the robotic device, if an error such as bias drift is included in the sensor signal, an error is caused in the control signal. Thus, accurate control might fail to be achieved in some cases.

In the above JP A 2005-242794, for example, since two types of filters, namely a low-pass filter for eliminating a high-frequency component of the angle sensor and a high-pass filter for eliminating a low-frequency component of the angular velocity sensor, are used in order to reduce the influence of an error of each of the sensors, the amount of operations performed in a control device increases. Thus, there is a problem that too much time is consumed for processing, or costs are increased for an arithmetic device to increase processing speed.

SUMMARY

An advantage of some aspects of the invention is to solve at least a part of the problems described above. The invention can be implemented in the following forms or application examples.

Application Example 1

This application example of the invention is directed to a robotic device including an arm linkage device including a first actuator, a first torque transmission mechanism with which torque of the first actuator is transmitted at a first predetermined reduction ratio, and a first angle sensor adapted to detect a first rotational angle of the first actuator, an arm body having first and second arms linked serially and rotatably with the arm linkage device, a base body to which the arm body is rotatably linked with a base body linkage device including a second actuator disposed on one end of the arm body, a second torque transmission mechanism with which torque of the second actuator is transmitted at a second predetermined reduction ratio, and a second angle sensor adapted to detect a second rotational angle of the second actuator, an inertial sensor attached to the first arm, and including at least an angular velocity sensor, a first calculation section adapted to calculate a first angular velocity of the first arm operating due to the first actuator provided with the first angle sensor based on rotational angle detection data of the first angle sensor, a second calculation section adapted to calculate a second angular velocity of the first arm operating due to the first actuator taking the arm linkage device as an axis based on angular velocity detection data of the inertial sensor provided to the first arm linked via the arm linkage device including the first actuator, which is a calculation object of the first calculation section, and a third calculation section adapted to calculate a torsional angular velocity between the first actuator and the first arm, which is obtained by eliminating a low-frequency component included in a difference between the first angular velocity of the first arm acting due to the first actuator and the second angular velocity of the first arm calculated based on the angular velocity detection data of the inertial sensor.

According to this application example of the invention, the torsional angular velocity is used as the data to be the base of the vibration suppression control of the robotic device to thereby enable the accurate control.

Application Example 2

This application example of the invention is directed to the robotic device of the above application example of the invention, wherein the low-frequency component corresponds to a range lower than a lowest frequency of an antiresonant frequency and a resonant frequency out of mechanical natural frequencies of the robotic device.

According to this application example of the invention, since the low-frequency component is cut without cutting the antiresonant frequency and the resonant frequency, even in the case of using the inertial sensor including an error, it is possible to obtain the torsional angular velocity approximate to the true value which can be obtained by the inertial sensor not including the error in the range with a large gain. Thus it is possible to obtain the robotic device of accurately controlling the vibration using the torsional angular velocity.

Application Example 3

This application example of the invention is directed to the robotic device of the above application example of the invention, which is further provided with a fourth calculation section adapted to calculate a control signal for the first actuator by adding the first angular velocity of the first arm calculated by the first calculation section and the torsional angular velocity calculated by the third calculation section to each other.

According to this application example of the invention, the actual operation is not included in the low-frequency component of the torsional angular velocity. Therefore, the elimination of the low-frequency component of the torsional angular velocity directly corresponds to the elimination of the error (noise) of the inertial sensor. And by using the torsional angular velocity with the low-frequency component eliminated or the arm angular velocity obtained by adding the first angular velocity of the first actuator to the torsional angular velocity with the low-frequency component eliminated as the control data, the accurate vibration suppression control of the robotic device is enabled.

Application Example 4

This application example of the invention is directed to a method for controlling a robotic device including an arm linkage device including a first actuator, a first torque transmission mechanism with which torque of the first actuator is transmitted at a first predetermined reduction ratio, and a first angle sensor adapted to detect a first rotational angle of the first actuator, an arm body having first and second arms linked serially and rotatably with the arm linkage device, a base body to which the arm body is rotatably linked with a base body linkage device including a second actuator disposed on one end of the arm body, a second torque transmission mechanism with which torque of the second actuator is transmitted at a second predetermined reduction ratio, and a second angle sensor adapted to detect a second rotational angle of the second actuator, and an inertial sensor attached to the first arm, and including at least an angular velocity sensor. The method includes a first calculating step of calculating a first angular velocity of the first arm operating due to the first actuator provided with the first angle sensor based on rotational angle detection data of the first angle sensor, a second calculating step of calculating a second angular velocity of the first arm operating due to the first actuator taking the arm linkage device as an axis based on angular velocity detection data of the inertial sensor provided to the first arm linked via the arm linkage device including the first actuator, which is a calculation object in the first calculating step, and a third calculating step of calculating a torsional angular velocity between the first actuator and the first arm, which is obtained by eliminating a low-frequency component included in a difference between the first angular velocity of the first arm acting due to the first actuator and the second angular velocity of the first arm calculated based on the angular velocity detection data of the inertial sensor.

According to this application example of the invention, the torsional angular velocity is used as the data to be the base of the vibration suppression control of the robotic device to thereby make it possible to perform the accurate control.

Application Example 5

This application example of the invention is directed to the method for controlling a robotic device of the above application example of the invention, wherein the low-frequency component corresponds to a range lower than a lowest frequency of an antiresonant frequency and a resonant frequency out of mechanical natural frequencies of the robotic device.

According to this application example of the invention, since the low-frequency component is cut without cutting the antiresonant frequency and the resonant frequency, even in the case of using the inertial sensor including an error, it is possible to obtain the torsional angular velocity approximate to the true value which can be obtained by the inertial sensor not including the error in the range with a large gain. Thus it is possible to accurately control the vibration of the robotic device using the torsional angular velocity.

Application Example 6

This application example of the invention is directed to the method for controlling a robotic device of the above application example of the invention, which is further provided with a fourth calculating step of calculating a control signal for the first actuator by adding the first angular velocity of the first arm calculated in the first calculating step and the torsional angular velocity calculated in the third calculating step to each other.

According to this application example of the invention, the actual operation is not included in the low-frequency component of the torsional angular velocity. Therefore, the elimination of the low-frequency component of the torsional angular velocity directly corresponds to the elimination of the error (noise) of the inertial sensor. And by using the torsional angular velocity with the low-frequency component eliminated or the arm angular velocity obtained by adding the first angular velocity of the first actuator to the torsional angular velocity with the low-frequency component eliminated as the control data, it becomes possible to accurately control and suppress the vibration of the robotic device.

Application Example 7

This application example of the invention is directed to a computer memory storing a computer program executable by a processor, for controlling a robotic device, the robotic device including an arm linkage device including a first actuator, a first torque transmission mechanism with which torque of the first actuator is transmitted at a first predetermined reduction ratio, and a first angle sensor adapted to detect a first rotational angle of the first actuator, an arm body having first and second arms linked serially and rotatably with the arm linkage device, a base body to which the arm body is rotatably linked with a base body linkage device including a second actuator disposed on one end of the arm body, a second torque transmission mechanism with which torque of the second actuator is transmitted at a second predetermined reduction ratio, and a second angle sensor adapted to detect a second rotational angle of the second actuator, and an inertial sensor attached to the first arm, and including at least an angular velocity sensor. The computer program allows the processor to perform the processing including a first calculating procedure calculating a first angular velocity of the first arm operating due to the first actuator provided with the first angle sensor based on rotational angle detection data of the first angle sensor, a second calculating procedure calculating a second angular velocity of the first arm operating due to the first actuator taking the arm linkage device as an axis based on angular velocity detection data of the inertial sensor provided to the first arm linked via the arm linkage device including the first actuator, which is a calculation object in the first calculating procedure, and a third calculating procedure calculating a torsional angular velocity between the first actuator and the first arm, which is obtained by eliminating a low-frequency component included in a difference between the first angular velocity of the first arm acting due to the first actuator and the second angular velocity of the first arm calculated based on the angular velocity detection data of the inertial sensor.

Only by installing the computer program of this application example of the invention on the processor provided to the robotic device, the vibration suppression control of the robotic device described above can easily be performed.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will be described with reference to the accompanying drawings, wherein like numbers reference like elements.

FIGS. 1A and 1B show a schematic configuration of a robotic device according to an embodiment of the invention, wherein FIG. 1A is a schematic plan view, and FIG. 1B is a schematic cross-sectional view.

FIG. 2 is a control block diagram of a robotic device according to an embodiment.

FIG. 3 is a Bode diagram of angular velocity response of an actuator, an arm, and torsion, with respect to torque of the actuator of a robotic device according to an embodiment.

FIGS. 4A and 4B are graphs showing frequency characteristics of a torsional angular velocity in operation according to an embodiment before and after eliminating a low-frequency component, wherein FIG. 4A shows the case of an inertial sensor without an error, and FIG. 4B shows the case of an inertial sensor with a low-frequency error.

FIG. 5 is a flow diagram of a control method according to an embodiment.

FIG. 6 is a block diagram showing a second specific example.

DESCRIPTION OF AN EXEMPLARY EMBODIMENT

An embodiment according to the invention will hereinafter be explained with reference to the accompanying drawings.

Embodiment

The embodiment according to the invention will be explained. FIGS. 1A and 1B are diagrams showing a robotic device according to the embodiment of the invention, wherein FIG. 1A shows a schematic plan view, and FIG. 1B shows a schematic cross-sectional view. The robotic device according to the present embodiment is a so-called three-axis horizontal articulated robot 100 (hereinafter referred to as a robotic device 100) having three arms linked rotatably in a horizontal direction.

The robotic device 100 is provided with an arm body 10 configured by rotatably and serially linking a first arm 11 and a second arm 12 with a first arm linkage device 21, and the second arm 12 and a third arm 13 with a second arm linkage device 22. The arm body 10 is further linked rotatably to a base body 40, which is fixed to a substrate, with a base body linkage device 30, and thus the robotic device 100 is configured.

The first arm linkage device 21 includes an actuator 51 and a torque transmission device 61 for transmitting the torque of the actuator 51 at a predetermined reduction ratio. The second arm linkage device 22 also includes an actuator 52 and a torque transmission device 62 similarly thereto. Further, the base body linkage device 30 includes an actuator 53 and a torque transmission device 63 for transmitting the torque of the actuator 53 at a predetermined reduction ratio. The tip portion of the third arm 13, which is the tip portion of the arm body 10 on the opposite side to the base body 40, is provided with a work holding device 70 for holding a working tool or an object to be worked.

The actuator 51 included in the first arm linkage device 21 is provided with an angle sensor 81 for detecting a rotational angle. Similarly, the actuator 52 of the second arm linkage device 22 is provided with an angle sensor 82. Further, the base body linkage device 30 is also provided with an angle sensor 83 in the actuator 53. Further, the first arm 11, the second arm 12, and the third arm 13 are respectively provided with inertial sensors 91, 92, and 93. Each of the inertial sensors 91, 92, and 93 includes at least an angular velocity sensor. The inertial sensors 91, 92, and 93 are arranged to be able to detect angular velocities of the first, second, and third arms 11, 12, and 13 at positions to which the inertial sensors 91, 92, and 93 are attached, respectively.

FIG. 2 is a block diagram showing a configuration of the robotic device 100 according to the present embodiment. A CPU 200 includes a first calculation section 510, a second calculation section 520, a third calculation section 530, a fourth calculation section 540, and a control section 600, and retrieves and then executes a computer program stored in a ROM 300. Further, a RAM 400 stores data obtained by the execution of the computer program in the CPU 200, and transmits the necessary data to the CPU 200 out of the data thus stored.

Rotational angle data of the actuators 51, 52, and 53 detected by the angle sensors 81, 82, and 83 provided to the robotic device 100 is converted by the first calculation section 510 into a rotational angle θ1 of the actuator 51, a rotational angle θ2 of the actuator 52, and a rotational angle θ3 of the actuator 53. Then a first-order temporal differentiation is performed on each of the rotational angles θ1, θ2, and θ3 thus obtained by the conversion to thereby calculate rotational angular velocities of the respective actuators 51-53.

The rotational angular velocities of the arms driven by the actuators are obtained based on the rotational angular velocities of the actuators thus obtained, respectively. In the case of the first arm 11, since it is driven by the actuator 53 via the torque transmission device 63 with a reduction ratio of 1/N3, the rotational angular velocity ω3 of an output section of the base body linkage device 30 is obtained as follows. ω3=(dθ3/dt)×(1/N3)

Similarly, the rotational angular velocity ω1 of an output section of the first arm linkage device 21 including the actuator 51 for driving the second arm 12 is obtained as follows. ω1=(dθ1/dt)×(1/N1)

N1: a reduction ratio of the torque transmission device 61

Further, the rotational angular velocity ω2 of an output section of the second arm linkage device 22 including the actuator 52 for driving the third arm 13 is obtained as follows. ω2=(dθ2/dt)×(1/N2)

N2: a reduction ratio of the torque transmission device 62

The second calculation section 520 calculates an angular velocity of the first arm 11, an angular velocity of the second arm 12, and an angular velocity of the third arm 13 based on the data detected by the inertial sensors 91, 92, and 93 provided to the first arm 11, the second arm 12, and the third arm 13, respectively. The angular velocity obtained based on the detection data is the angular velocity taking the base body linkage device 30 as the axis of rotation. Therefore, the angular velocity of the arm taking the corresponding linkage device, namely the first arm linkage device 21 in the case of the second arm 12, or the second arm linkage device 22 in the case of the third arm 13, as the axis of rotation is further calculated based on the angular velocity thus obtained.

Specifically, in the case of the second arm 12, the angular velocity ω_(j2) taking the first arm linkage device 21 of the second arm 12 as the axis of rotation can be obtained as follows based on the angular velocity ω_(a1) obtained by the conversion of the detection data obtained from the inertial sensor 91 provided to the first arm 11 and the angular velocity ω_(a2) obtained by the conversion of the detection data of the inertial sensor 92 provided to the second arm 12. ω_(j2)=ω_(a2)−ω_(a1)

Similarly, in the case of the third arm 13, the angular velocity ω_(j3) taking the second arm linkage device 22 of the third arm 13 as the axis of rotation can be obtained as follows based on the angular velocity ω_(a2) obtained by the conversion of the detection data obtained from the inertial sensor 92 provided to the second arm 12 and the angular velocity ω_(a3) obtained by the conversion of the detection data of the inertial sensor 93 provided to the third arm 13. ω_(j3)=ω_(a3)−ω_(a2)

In the case of the first arm 11, since the first arm 11 rotates around the base body linkage device 30 provided to the base body 40, the angular velocity ω_(a1) obtained from the inertial sensor 91 corresponds to the angular velocity of the first arm 11.

The third calculation section 530 calculates the torsional angular velocities as respective differences between the angular velocities ω1, ω2, and ω3 of the second arm 12, the third arm 13, and the first arm 11 taking the linkage device including the actuators as the axis of rotation due to the rotation of the actuators thus calculated as described above, and the angular velocities ω_(j2), ω_(j3), and ω_(a1) of the second arm 12, the third arm 13, and the first arm 11 taking the respective linkage devices as the axes of rotation obtained by the inertial sensors attached to the respective arms.

Specifically, the torsional angular velocity ω_(t1) between the base body linkage device 30 and the first arm 11 can be obtained as follows. ω_(t1)=ω_(a1)−ω1

Similarly, the torsional angular velocity ω_(t2) between the first arm linkage device 21 and the second arm 12 can be obtained as follows. ω_(t2)=ω_(j2)−ω2

Further, the torsional angular velocity ω_(t3) between the second arm linkage device 22 and the third arm 13 can be obtained as follows. ω_(t3)=ω_(j3)−ω3

FIG. 3 is a Bode diagram for explaining the response of the angular velocity Ω_(act) with which the arms are driven by the actuators via the torque transmission device, the angular velocity Ω_(arm) of the arms obtained by the inertial sensors, and the torsional angular velocity Ω_(tor) with respect to the torque of the actuators in the robotic device 100. As shown in FIG. 3, although a primary operating component is included in a low-frequency component in the angular velocities Ω_(act), Ω_(arm), an actual operating component is hardly included in the low-frequency component in the torsional angular velocity Ω_(tor). Taking the point described above into consideration, according to the invention, the low-frequency component of the torsional angular velocity Ω_(tor) is regarded as a component corresponding to influence of an error due to, for example, the bias drift of the sensor, and is eliminated therefrom to thereby make it possible to eliminate the low-frequency noise of the robotic device 100 to thereby accurately control the vibration of the robotic device 100.

FIGS. 4A and 4B are diagrams conceptually showing frequency characteristics of a torsional angular velocity in operation, and show the condition of eliminating a low-frequency component with measures such as a high-pass filter. FIG. 4A shows the case of an inertial sensor without an error, and FIG. 4B shows the case of the inertial sensor with a low-frequency error such as the bias drift. Further, the difference between FIG. 4A and FIG. 4B corresponds to the component of the error of the inertial sensor.

By eliminating the low-frequency component from the torsional angular velocity Ω_(tor) before eliminating the low-frequency component show in FIG. 4A with the high-pass filter, the torsional angular velocity Ω_(tor′) can be obtained. In FIG. 4B, by similarly eliminating the low-frequency component from the torsional angular velocity Ω_(tor) before eliminating the low-frequency component, the torsional angular velocity Ω′_(tor′) can be obtained. As shown in FIG. 4A, the torsional angular velocity Ω_(tor′) obtained by eliminating the low-frequency component has the gain smaller than that of the torsional angular velocity Ω_(tor) before the elimination in the frequency range of the component thus eliminated. However, in the range S the gain takes a minute value of, for example, 10⁻⁵ or smaller, and therefore, the eliminated component is in a negligible level.

In contrast, in the case of the inertial sensor having an error shown in FIG. 4B, the difference area T generated between before and after the elimination of the low-frequency component by the high-pass filter is located in the range with large gain. Therefore, by eliminating the low-frequency component, it is possible to approximate the gain to the value U without the error and before eliminating the low-frequency component in FIG. 4B. Therefore, by eliminating the low-frequency component of the torsional angular velocity, it is possible to obtain the torsional angular velocity without the error. In other words, the torsional angular velocity near to the true value is obtained even with the inertial sensor having the low-frequency error such as the bias drift, and thus it becomes possible to accurately control the vibration of the robotic device 100 due to the torsional angular velocity.

Specifically, with respect to the torsional angular velocities ω_(t1), ω_(t2), and ω_(t3) thus obtained in the manner as described above, the torsional angular velocities Ω_(t1), Ω_(t2), and Ω_(t3) obtained by eliminating the low-frequency component out of the frequency components thereof with the high-pass filter not shown (hereinafter referred to as an HPF) are calculated. Here, it is preferable to use the HPF having a filtering frequency lower than the lowest frequency of the antiresonant frequency and the resonant frequency out of the mechanical natural frequencies of the robotic device 100.

It is possible to generate a control signal in the control section 600 using the torsional angular velocities Ω_(t1), Ω_(t2), and Ω_(t3) with the low-frequency component eliminated to thereby control the respective actuators 51, 52, and 53. In this case, it is also possible to provide the fourth calculation section 540 to thereby add the angular velocities ω2, ω3, and ω1 to be transmitted to the second arm 12, the third arm 13, and the first arm 11 via the torque transmission devices 61, 62, and 63 of the respective linkage devices 21, 22, and 30 to the torsional angular velocities Ω_(t1), Ω_(t2), and Ω_(t3) with the low-frequency component eliminated, and to generate the control signal in the control section 600 using the results.

FIG. 5 is a flow diagram showing the method for controlling the robotic device 100 according to the present embodiment. In the operating state of the robotic device 100, the first calculation section 510 obtains the rotational angle data from the angle sensors 81, 82, and 83 provided to the actuators firstly in the first calculation step (S111). The first calculation section 510 performs the conversion from the angle data thus obtained to the rotational angles and the first-order temporal differentiation on the rotational angles to thereby calculate the rotational angular velocity ω1 of the output section of the first arm linkage device 21 including the actuator 51 for driving the second arm 12, the rotational angular velocity ω2 of the output section of the second arm linkage device 22 including the actuator 52 for driving the third arm 13, and the rotational angular velocity ω3 of the output section of the base body linkage device 30.

Further, at the same time, in the second calculation step (S112), the second calculation section obtains the angular velocity data from the inertial sensors 91, 92, and 93 provided to the respective arms, and then calculates the angular velocities taking the respective linkage devices for linking and driving the respective arms as the axes of rotation. Specifically, in the second arm 12, the angular velocity ω_(j2) taking the first arm linkage device 21 of the second arm 12 as the axis of rotation can be calculated by the following formula based on the angular velocity ω_(a1) obtained by the conversion of the detection data obtained from the inertial sensor 91 provided to the first arm 11 and the angular velocity ω_(a2) obtained by the conversion of the detection data of the inertial sensor 92 provided to the second arm 12. ω_(j2)=ω_(a2)−ω_(a1)

Similarly, in the third arm 13, the angular velocity ω_(j3) taking the second arm linkage device 22 of the third arm 13 as the axis of rotation can be calculated by the following formula based on the angular velocity ω_(a2) obtained by the conversion of the detection data obtained from the inertial sensor 92 provided to the second arm 12 and the angular velocity ω_(a3) obtained by the conversion of the detection data of the inertial sensor 93 provided to the third arm 13. ω_(j3)=ω_(a3)−ω_(a2)

It should be noted that in the first arm 11, since the first arm 11 rotates around the base body linkage device 30 provided to the base body 40, the angular velocity ω_(a1) obtained from the inertial sensor 91 corresponds to the angular velocity of the first arm 11.

Then, the process proceeds to the third calculation step (S120). In the third calculation step (S120), the following torsional angular velocities are calculated based on the differences between the angular velocities ω1, ω2, and ω3 calculated in the first calculation step (S111) and the angular velocities ω_(a1), ω_(j2), and ω_(j3) calculated in the second calculation step (S112), respectively. ω_(t1)=ω_(a1)−ω1 ω_(t2)=ω_(j2)−ω2 ω_(t3)=ω_(j3)−ω3

The torsional angular velocities ω_(t1), ω_(t2), and ω_(t3) thus calculated are filtered with the high-pass filter for eliminating the component having a frequency lower than the lowest frequency of the antiresonant frequency and the resonant frequency out of the mechanical natural frequencies of the robotic device 100 to thereby calculate the torsional angular velocities Ω_(t1), Ω_(t2), and Ω_(t3) with the low-frequency component eliminated.

Then, the process proceeds to the fourth calculation step (S130). In the fourth calculation step (S130), the angular velocities ω2, ω3, and ω1 to be transmitted to the second arm 12, the third arm 13, and the first arm 11 via the torque transmission devices 61, 62, and 63 of the respective linkage devices 21, 22, and 30 are added to the torsional angular velocities Ω_(t1), Ω_(t2), and Ω_(t3) with the low-frequency component eliminated by the high-pass filter, which are calculated in the third calculation step (S120). Then the results are transmitted to the control signal generation step (S140).

In the control signal generation step (S140), the control section 600 generates the control signals of the respective actuators based on the calculation results in the fourth calculation step (S130) thus obtained. In other words, the control section 600 generates the control signals for controlling the respective actuators based on the angular velocities obtained by adding the angular velocities ω2, ω3, and ω1 to be transmitted to the second arm 12, the third arm 13, and the first arm 11 via the torque transmission devices 61, 62, and 63 of the respective linkage devices 21, 22, and 30 to the torsional angular velocities Ω_(t2), Ω_(t2), and Ω_(t3) with the low-frequency component eliminated by the high-pass filter.

Then, the process proceeds to the robotic device operation stoppage checking step (S150). In the robotic device operation stoppage checking step (S150), whether or not the robotic device 100 is in the operating state is checked. If it is in the operating state (No), the process proceeds to the first calculation step (S111) and the second calculation step (S112), and the control is repeated. If it is in the rest state (operation stoppage) (Yes), the control is terminated.

As described above, by using the torsional angular velocities as the control data, and further by using the torsional angular velocities with the low-frequency component eliminated as the control data, the accurate vibration suppression control of the robotic device with the error components of the inertial sensors eliminated becomes possible.

SPECIFIC EXAMPLES First Specific Example

A specific example of control of a robotic device according to the embodiment based on a torsional angular velocity will be explained. Four state quantities, namely an actuator angle, an arm angle (link angle), an actuator angular velocity, and an arm angular velocity, are used in an equation for calculating a torque command value τ supplied to an actuator. And “(the torsional angular velocities (Ω_(t1), Ω_(t2), and Ω_(t3)) with the low-frequency component eliminated)+(the angular velocities (ω2, ω3, and ω1) to be transmitted to the arms via the torque transmission devices of the respective linkage devices)” explained in the embodiment described above is used as the arm angular velocity among these state quantities.

The actuator angle, the arm angle (the link angle), the actuator angular velocity, and the arm angular velocity obtained by adding the angular velocity transmitted to the arm via the torque transmission device of the linkage device to the torsional angular velocity with the low-frequency component eliminated, as the four state quantities described above are measured. Then the state feedback control system is established using the formula 1 below based on the four state quantities thus measured.

$\begin{matrix} {{\tau_{i} = {{{- k_{5\; i}}{\int{\left( {\theta_{mri} - \theta_{mi}} \right)d\; t}}} - {\begin{bmatrix} k_{1\; i} & k_{2\; i} & k_{3\; i} & k_{4\; i} \end{bmatrix}\begin{bmatrix} \theta_{mi} \\ \theta_{ai} \\ {\overset{.}{\theta}}_{mi} \\ {\overset{.}{\theta}}_{ai} \end{bmatrix}}}}{\left( {{i = 1},2,3} \right)\left\lbrack \begin{matrix} {\tau_{i}\text{:}} & {{actuator}\mspace{14mu}{torque}\mspace{14mu}{command}} \\ {\theta_{mr}\text{:}} & {{target}\mspace{14mu}{value}\mspace{14mu}{of}\mspace{14mu}{the}\mspace{14mu}{torque}\mspace{14mu}{transmission}\mspace{14mu}{device}} \\ \; & {({actuator})\mspace{14mu}{angle}} \\ {\theta_{m}\text{:}} & {{torque}\mspace{14mu}{transmission}\mspace{14mu}{device}\mspace{14mu}({actuator})\mspace{14mu}{angle}} \\ \; & {{calculated}\mspace{14mu}{from}\mspace{14mu}{the}\mspace{14mu}{angular}\mspace{14mu}{sensor}\mspace{14mu}{information}} \\ {\theta_{a}\text{:}} & {{arm}\mspace{14mu}{{angle}\mspace{14mu}\left( {= {{approximate}\mspace{14mu}{integration}\mspace{14mu}{of}\mspace{14mu}{the}\mspace{14mu}{arm}}} \right.}} \\ \; & {{angular}\mspace{14mu}{velocity}\mspace{14mu}\left( {{{torsional}\mspace{14mu}{angular}\mspace{14mu}{velocity}} +} \right.} \\ \; & \left. \left. {{torque}\mspace{14mu}{transmission}\mspace{14mu}{device}\mspace{14mu}{angular}\mspace{14mu}{velocity}} \right) \right) \\ {{\overset{.}{\theta}}_{m}\text{:}} & {{first}\text{-}{order}\mspace{14mu}{differentiation}\mspace{14mu}{of}\mspace{14mu}\theta_{m}\mspace{14mu}\left( {= {angular}} \right.} \\ \; & {{velocity}\mspace{14mu}{at}\mspace{14mu}{which}\mspace{14mu}{the}\mspace{14mu}{torque}\mspace{14mu}{transmission}\mspace{14mu}{device}} \\ \; & \left. {{performs}\mspace{14mu}{driving}} \right) \\ {{\overset{.}{\theta}}_{a}\text{:}} & {{first}\text{-}{order}\mspace{14mu}{differentiation}\mspace{14mu}{of}\mspace{14mu}\theta_{a}\mspace{14mu}\left( {= {{arm}\mspace{14mu}{angular}}} \right.} \\ \; & {{velocity}\mspace{14mu}\left( {{{torsional}\mspace{14mu}{angular}\mspace{14mu}{velocity}} + {torque}} \right.} \\ \; & \left. \left. {{transmission}\mspace{14mu}{device}\mspace{14mu}{angular}\mspace{14mu}{velocity}} \right) \right) \\ {k_{1},k_{2},k_{3},} & \; \\ {k_{4},{k_{5}\text{:}}} & {\mspace{11mu}{{control}\mspace{14mu}{gains}}\;} \end{matrix} \right.}} & (1) \end{matrix}$

The symbols k₁ through k₅ in the formula 1 are internal control gains of the control device, and can be determined by the pole placement method, the optimum regulator, and so on. By performing the control using the torque command value τ thus obtained, the vibration of the robotic device is suppressed to thereby enable the accurate operation.

Although in the specific example described above an example of using “(the torsional angular velocities (Ω_(t1), Ω_(t2), and Ω_(t3)) with the low-frequency component eliminated)+(the angular velocities (ω2, ω3, and ω1) to be transmitted to the arms via the torque transmission devices of the respective linkage devices)” explained in the embodiment described above as the arm angular velocity is explained, it is possible to establish the control system with small amount of calculation by using the “torsional angular velocity” as the state quantity instead of the arm angular velocity.

Specifically, the torsional angle θ_(t) and the torsional angular velocity (the torsional angular velocities Ω_(t1), Ω_(t2), and Ω_(t3) in the embodiment) are used instead of the arm angle θ_(a) and the arm angular velocity dθ_(a)/dt, which is a first-order differentiation of the arm angle θ_(a), in the formula 1 to thereby establish the control system using the formula 2 below.

$\begin{matrix} {{\tau_{i} = {{{- k_{t\; 5\; i}}{\int{\left( {\theta_{mri} - \theta_{mi}} \right)d\; t}}} - {\begin{bmatrix} k_{t\; 1\; i} & k_{t\; 2\; i} & k_{t\; 3\; i} & k_{t\; 4\; i} \end{bmatrix}\begin{bmatrix} \theta_{mi} \\ \theta_{ti} \\ {\overset{.}{\theta}}_{mi} \\ {\overset{.}{\theta}}_{ti} \end{bmatrix}}}}{\left( {{i = 1},2,3} \right)\left\lbrack \begin{matrix} {\tau_{i}\text{:}} & {{actuator}\mspace{14mu}{torque}\mspace{14mu}{command}} \\ {\theta_{mr}\text{:}} & {{target}\mspace{14mu}{value}\mspace{14mu}{of}\mspace{14mu}{the}\mspace{14mu}{torque}\mspace{14mu}{transmission}\mspace{14mu}{device}} \\ \; & {({actuator})\mspace{14mu}{angle}} \\ {\theta_{m}\text{:}} & {{torque}\mspace{14mu}{transmission}\mspace{14mu}{device}\mspace{14mu}({actuator})\mspace{14mu}{angle}} \\ \; & {{calculated}\mspace{14mu}{from}\mspace{14mu}{the}\mspace{14mu}{angular}\mspace{14mu}{sensor}\mspace{14mu}{information}} \\ {\theta_{t}\text{:}} & {{torsional}\mspace{14mu}{{angle}\mspace{14mu}\left( {= {{approximate}\mspace{14mu}{integration}\mspace{14mu}{of}\mspace{14mu}{the}}} \right.}} \\ \; & \left. {{torsional}\mspace{14mu}{angular}\mspace{14mu}{velocity}} \right) \\ {{\overset{.}{\theta}}_{m}\text{:}} & {{first}\text{-}{order}\mspace{14mu}{differentiation}\mspace{14mu}{of}\mspace{14mu}\theta_{m}\mspace{14mu}\left( {= {angular}} \right.} \\ \; & {{velocity}\mspace{14mu}{at}\mspace{14mu}{which}\mspace{14mu}{the}\mspace{14mu}{torque}\mspace{14mu}{transmission}\mspace{14mu}{device}} \\ \; & \left. {{performs}\mspace{14mu}{driving}} \right) \\ {{\overset{.}{\theta}}_{t}\text{:}} & {{first}\text{-}{order}\mspace{14mu}{differentiation}\mspace{14mu}{of}\mspace{14mu}\theta_{t}\mspace{14mu}\left( {= {{torsional}\mspace{14mu}{angular}}} \right.} \\ \; & \left. {velocity} \right) \\ {k_{t\; 1},k_{t\; 2},k_{t\; 3},} & \; \\ {k_{t\; 4},{k_{t\; 5}\text{:}}} & {\;{{control}\mspace{14mu}{gains}}} \end{matrix} \right.}} & (2) \end{matrix}$

The symbols k_(t1) through k_(t5) in the formula 2 are internal control gains of the control device, and can be determined by the pole placement method, the optimum regulator, and so on. By performing the control using the torque command value τ thus obtained, the vibration of the robotic device is suppressed to thereby enable the accurate operation.

Second Specific Example

Another specific example will be explained with reference to a block diagram shown in FIG. 6. The block diagram shown in FIG. 6 is different from the block diagram shown in FIG. 2 in the embodiment described above. A position control system 610 a and a velocity control system 610 b in the control section 610 obtain the calculation result, and then perform the control. Therefore, the same constituents as in the embodiment are provided with the same reference symbols, and the explanation therefore will be omitted.

Also in the present specific example shown in FIG. 6, the CPU 210 includes the first calculation section 510, the second calculation section 520, the third calculation section 530, and a control section 610, and retrieves and then executes a computer program stored in the ROM 310. Further, the RAM 410 stores the data obtained by the execution of the computer program in the CPU 210, and transmits the necessary data to the CPU 210 out of the data thus stored.

As shown in the block diagram of FIG. 6, in the control of the present specific example, the position control system 610 a obtains the rotational angle data of the actuators converted by the first calculation section 510. Further, the velocity control system 610 b similarly obtains the angular velocity data of the actuators calculated in the first calculation section. The velocity control system 610 b also obtains the torsional angular velocity data calculated by the third calculation section 530, and then the velocity control system 610 b outputs a torque command to the robotic device 100 together with an angular velocity command input from the position control system 610 a. By performing the control described above, the vibration of the robotic device is suppressed to thereby enable the accurate operation.

The embodiment and the specific examples described above are explained using the horizontal articulated arm body 10 provided with three arms shown in FIGS. 1A and 1B, the invention is not limited thereto, but can also be applied to a robotic device provided with two arms or a robotic device provided with four or more arms. Further, regarding the type of the robotic device, the invention can also be applied to a robotic device provided with movable arms such as a direct acting type or a vertical articulated type.

It will be apparent that the robotic device, the method for controlling a robotic device, and the computer program being thus described may be varied in many ways. Such variations are not to be regarded as a departure from the spirit and scope of the invention, and all such modifications are intended to be included within the scope of the claims. 

What is claimed is:
 1. A robotic device comprising: an arm that is rotationally connected to an actuator; an angle sensor that detects a rotational angle of the actuator; an inertial sensor that is provided at the arm and that detects a sensed angular velocity of the arm; and a controller that controls the arm, wherein the controller performs vibration suppression control based on an output of the inertial sensor and an output of the angular sensor, and the controller performs position control based on the output of the angle sensor.
 2. The robotic device according to claim 1, wherein the controller performs a velocity control based on the output of the angle sensor.
 3. The robotic device according to claim 2, wherein the controller performs a velocity control based on the output of the inertial sensor.
 4. The robotic device according to claim 1, wherein the inertial sensor is an angular velocity sensor.
 5. The robotic device according to claim 2, wherein the inertial sensor is an angular velocity sensor.
 6. The robotic device according to claim 3, wherein the inertial sensor is an angular velocity sensor.
 7. A method for controlling a robotic device that includes: an arm that is rotationally connected to an actuator; an angle sensor that detects a rotational angle of the actuator; an inertial sensor that is provided at the arm and that detects a sensed angular velocity of the arm; and a controller that controls the arm, the method comprising: performing vibration suppression control based on an output of the inertial sensor and an output of the angular sensor; and performing position control based on the output of the angle sensor.
 8. The method for controlling a robotic device according to claim 5, further comprising: performing velocity control based on the output of the angle sensor.
 9. A computer program product embodying computer readable instructions stored on a non-transitory computer readable medium for controlling a robotic device that includes: an arm that is rotationally connected to an actuator; an angle sensor that detects a rotational angle of the actuator; an inertial sensor that is provided at the arm and that detects a sensed angular velocity of the arm; and a controller that controls the arm, the computer program comprising: instructions for performing vibration suppression control based on an output of the inertial sensor and an output of the angular sensor; and instructions for performing position control based on the output of the angle sensor.
 10. The computer program product embodying computer readable instructions stored on a non-transitory computer readable medium for controlling a robotic device according to claim 9, further comprising: instructions for performing velocity control based on the output of the angle sensor. 